<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            width: 800px;
            height: 800px;
            background-color: silver;
            overflow: hidden;
        }
        
        .box1 div{
            width: 100px;
            height: 100px;
            margin-bottom: 100px;
            margin-left: 0;
        }

        .box2{
            background-color: #bfa;

            /* 设置 .box2 的动画效果 */
            animation-name: test;
            animation-duration: 5s;
            animation-timing-function: cubic-bezier(.24, .95, .82, -0.88);

            /*
                设置 .box2 的动画次数
                    可选值:
                        infinite  -  无限循环
                        n  -  执行 n 次
                        0  -  不执行动画
                        默认值: 1
                        0.5  -  执行 0.5 圈
            */
            animation-iteration-count: infinite;
            
            /* 
                animation-direction
                    指定动画运行的方向
                    可选值：
                        normal  -  默认值，正常播放
                        reverse  -  反向播放
                        alternate  -  先正向播放，再反向播放
                        alternate-reverse  -  先反向播放，再正向播放
            */
            animation-direction: alternate;

            /* 
                animation-fill-mode: 动画播放时，元素在动画的开始和结束之间保留状态
                    可选值：
                        none  -  默认值，动画的开始和结束之间不保留状态
                        forwards  -  动画的结束状态保留
                        backwards  -  动画的开始状态保留
                        both  -  动画的开始和结束状态都保留
            */
            animation-fill-mode: both;
        }

        .box1:hover div{
            /* 
                animation-play-state
                - 控制动画的播放状态
                - 可选值：
                    running  -  动画正在播放
                    paused  -  动画已暂停
            */
            animation-play-state: paused;
        }

        /* 
            动画
                动画和过渡类似，都是可以实现一些动态的效果
                    不同的是过渡需要再某个属性发生变化时才会触发
                    动画可以自动触发动态效果

                设置动画效果，必须先要设置一个关键帧，关键帧设置了动画执行的每一个步骤
        */
        @keyframes test{
            /* 动画的开始位置 可以写 from 也可以 0% */
            from{
                margin-left: 0;
                background-color: yellow;
            }

            /* 动画的结束位置，可以写 to 也可以写 100% */
            to{
                margin-left: 700px;
                background-color: orange;
            }
        }

    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>
</html>